/*
 * An XML document type.
 * Localname: mail
 * Namespace: urn:jbpm.org:jpdl-3.2
 * Java type: x2.orgJpdl3.jbpm.MailDocument
 *
 * Automatically generated - do not modify.
 */
package x2.orgJpdl3.jbpm;


/**
 * A document containing one mail(@urn:jbpm.org:jpdl-3.2) element.
 *
 * This is a complex type.
 */
public interface MailDocument extends org.apache.xmlbeans.XmlObject
{
    public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
        org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(MailDocument.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.s9AF6EB416A5C93629A4C02ECFBC1909B").resolveHandle("maileacedoctype");
    
    /**
     * Gets the "mail" element
     */
    x2.orgJpdl3.jbpm.MailDocument.Mail getMail();
    
    /**
     * Sets the "mail" element
     */
    void setMail(x2.orgJpdl3.jbpm.MailDocument.Mail mail);
    
    /**
     * Appends and returns a new empty "mail" element
     */
    x2.orgJpdl3.jbpm.MailDocument.Mail addNewMail();
    
    /**
     * An XML mail(@urn:jbpm.org:jpdl-3.2).
     *
     * This is a complex type.
     */
    public interface Mail extends org.apache.xmlbeans.XmlObject
    {
        public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
            org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(Mail.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.s9AF6EB416A5C93629A4C02ECFBC1909B").resolveHandle("mailcd5belemtype");
        
        /**
         * Gets a List of "subject" elements
         */
        java.util.List<java.lang.String> getSubjectList();
        
        /**
         * Gets array of all "subject" elements
         * @deprecated
         */
        java.lang.String[] getSubjectArray();
        
        /**
         * Gets ith "subject" element
         */
        java.lang.String getSubjectArray(int i);
        
        /**
         * Gets (as xml) a List of "subject" elements
         */
        java.util.List<org.apache.xmlbeans.XmlString> xgetSubjectList();
        
        /**
         * Gets (as xml) array of all "subject" elements
         * @deprecated
         */
        org.apache.xmlbeans.XmlString[] xgetSubjectArray();
        
        /**
         * Gets (as xml) ith "subject" element
         */
        org.apache.xmlbeans.XmlString xgetSubjectArray(int i);
        
        /**
         * Returns number of "subject" element
         */
        int sizeOfSubjectArray();
        
        /**
         * Sets array of all "subject" element
         */
        void setSubjectArray(java.lang.String[] subjectArray);
        
        /**
         * Sets ith "subject" element
         */
        void setSubjectArray(int i, java.lang.String subject);
        
        /**
         * Sets (as xml) array of all "subject" element
         */
        void xsetSubjectArray(org.apache.xmlbeans.XmlString[] subjectArray);
        
        /**
         * Sets (as xml) ith "subject" element
         */
        void xsetSubjectArray(int i, org.apache.xmlbeans.XmlString subject);
        
        /**
         * Inserts the value as the ith "subject" element
         */
        void insertSubject(int i, java.lang.String subject);
        
        /**
         * Appends the value as the last "subject" element
         */
        void addSubject(java.lang.String subject);
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "subject" element
         */
        org.apache.xmlbeans.XmlString insertNewSubject(int i);
        
        /**
         * Appends and returns a new empty value (as xml) as the last "subject" element
         */
        org.apache.xmlbeans.XmlString addNewSubject();
        
        /**
         * Removes the ith "subject" element
         */
        void removeSubject(int i);
        
        /**
         * Gets a List of "text" elements
         */
        java.util.List<java.lang.String> getTextList();
        
        /**
         * Gets array of all "text" elements
         * @deprecated
         */
        java.lang.String[] getTextArray();
        
        /**
         * Gets ith "text" element
         */
        java.lang.String getTextArray(int i);
        
        /**
         * Gets (as xml) a List of "text" elements
         */
        java.util.List<org.apache.xmlbeans.XmlString> xgetTextList();
        
        /**
         * Gets (as xml) array of all "text" elements
         * @deprecated
         */
        org.apache.xmlbeans.XmlString[] xgetTextArray();
        
        /**
         * Gets (as xml) ith "text" element
         */
        org.apache.xmlbeans.XmlString xgetTextArray(int i);
        
        /**
         * Returns number of "text" element
         */
        int sizeOfTextArray();
        
        /**
         * Sets array of all "text" element
         */
        void setTextArray(java.lang.String[] textArray);
        
        /**
         * Sets ith "text" element
         */
        void setTextArray(int i, java.lang.String text);
        
        /**
         * Sets (as xml) array of all "text" element
         */
        void xsetTextArray(org.apache.xmlbeans.XmlString[] textArray);
        
        /**
         * Sets (as xml) ith "text" element
         */
        void xsetTextArray(int i, org.apache.xmlbeans.XmlString text);
        
        /**
         * Inserts the value as the ith "text" element
         */
        void insertText(int i, java.lang.String text);
        
        /**
         * Appends the value as the last "text" element
         */
        void addText(java.lang.String text);
        
        /**
         * Inserts and returns a new empty value (as xml) as the ith "text" element
         */
        org.apache.xmlbeans.XmlString insertNewText(int i);
        
        /**
         * Appends and returns a new empty value (as xml) as the last "text" element
         */
        org.apache.xmlbeans.XmlString addNewText();
        
        /**
         * Removes the ith "text" element
         */
        void removeText(int i);
        
        /**
         * Gets the "name" attribute
         */
        java.lang.String getName();
        
        /**
         * Gets (as xml) the "name" attribute
         */
        org.apache.xmlbeans.XmlString xgetName();
        
        /**
         * Sets the "name" attribute
         */
        void setName(java.lang.String name);
        
        /**
         * Sets (as xml) the "name" attribute
         */
        void xsetName(org.apache.xmlbeans.XmlString name);
        
        /**
         * Gets the "async" attribute
         */
        java.lang.String getAsync();
        
        /**
         * Gets (as xml) the "async" attribute
         */
        org.apache.xmlbeans.XmlString xgetAsync();
        
        /**
         * True if has "async" attribute
         */
        boolean isSetAsync();
        
        /**
         * Sets the "async" attribute
         */
        void setAsync(java.lang.String async);
        
        /**
         * Sets (as xml) the "async" attribute
         */
        void xsetAsync(org.apache.xmlbeans.XmlString async);
        
        /**
         * Unsets the "async" attribute
         */
        void unsetAsync();
        
        /**
         * Gets the "template" attribute
         */
        java.lang.String getTemplate();
        
        /**
         * Gets (as xml) the "template" attribute
         */
        org.apache.xmlbeans.XmlString xgetTemplate();
        
        /**
         * True if has "template" attribute
         */
        boolean isSetTemplate();
        
        /**
         * Sets the "template" attribute
         */
        void setTemplate(java.lang.String template);
        
        /**
         * Sets (as xml) the "template" attribute
         */
        void xsetTemplate(org.apache.xmlbeans.XmlString template);
        
        /**
         * Unsets the "template" attribute
         */
        void unsetTemplate();
        
        /**
         * Gets the "actors" attribute
         */
        java.lang.String getActors();
        
        /**
         * Gets (as xml) the "actors" attribute
         */
        org.apache.xmlbeans.XmlString xgetActors();
        
        /**
         * True if has "actors" attribute
         */
        boolean isSetActors();
        
        /**
         * Sets the "actors" attribute
         */
        void setActors(java.lang.String actors);
        
        /**
         * Sets (as xml) the "actors" attribute
         */
        void xsetActors(org.apache.xmlbeans.XmlString actors);
        
        /**
         * Unsets the "actors" attribute
         */
        void unsetActors();
        
        /**
         * Gets the "to" attribute
         */
        java.lang.String getTo();
        
        /**
         * Gets (as xml) the "to" attribute
         */
        org.apache.xmlbeans.XmlString xgetTo();
        
        /**
         * True if has "to" attribute
         */
        boolean isSetTo();
        
        /**
         * Sets the "to" attribute
         */
        void setTo(java.lang.String to);
        
        /**
         * Sets (as xml) the "to" attribute
         */
        void xsetTo(org.apache.xmlbeans.XmlString to);
        
        /**
         * Unsets the "to" attribute
         */
        void unsetTo();
        
        /**
         * Gets the "subject" attribute
         */
        java.lang.String getSubject2();
        
        /**
         * Gets (as xml) the "subject" attribute
         */
        org.apache.xmlbeans.XmlString xgetSubject2();
        
        /**
         * True if has "subject" attribute
         */
        boolean isSetSubject2();
        
        /**
         * Sets the "subject" attribute
         */
        void setSubject2(java.lang.String subject2);
        
        /**
         * Sets (as xml) the "subject" attribute
         */
        void xsetSubject2(org.apache.xmlbeans.XmlString subject2);
        
        /**
         * Unsets the "subject" attribute
         */
        void unsetSubject2();
        
        /**
         * Gets the "text" attribute
         */
        java.lang.String getText2();
        
        /**
         * Gets (as xml) the "text" attribute
         */
        org.apache.xmlbeans.XmlString xgetText2();
        
        /**
         * True if has "text" attribute
         */
        boolean isSetText2();
        
        /**
         * Sets the "text" attribute
         */
        void setText2(java.lang.String text2);
        
        /**
         * Sets (as xml) the "text" attribute
         */
        void xsetText2(org.apache.xmlbeans.XmlString text2);
        
        /**
         * Unsets the "text" attribute
         */
        void unsetText2();
        
        /**
         * A factory class with static methods for creating instances
         * of this type.
         */
        
        public static final class Factory
        {
            public static x2.orgJpdl3.jbpm.MailDocument.Mail newInstance() {
              return (x2.orgJpdl3.jbpm.MailDocument.Mail) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, null ); }
            
            public static x2.orgJpdl3.jbpm.MailDocument.Mail newInstance(org.apache.xmlbeans.XmlOptions options) {
              return (x2.orgJpdl3.jbpm.MailDocument.Mail) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, options ); }
            
            private Factory() { } // No instance of this class allowed
        }
    }
    
    /**
     * A factory class with static methods for creating instances
     * of this type.
     */
    
    public static final class Factory
    {
        public static x2.orgJpdl3.jbpm.MailDocument newInstance() {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, null ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument newInstance(org.apache.xmlbeans.XmlOptions options) {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, options ); }
        
        /** @param xmlAsString the string value to parse */
        public static x2.orgJpdl3.jbpm.MailDocument parse(java.lang.String xmlAsString) throws org.apache.xmlbeans.XmlException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xmlAsString, type, null ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(java.lang.String xmlAsString, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xmlAsString, type, options ); }
        
        /** @param file the file from which to load an xml document */
        public static x2.orgJpdl3.jbpm.MailDocument parse(java.io.File file) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( file, type, null ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(java.io.File file, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( file, type, options ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(java.net.URL u) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( u, type, null ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(java.net.URL u, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( u, type, options ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(java.io.InputStream is) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( is, type, null ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(java.io.InputStream is, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( is, type, options ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(java.io.Reader r) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( r, type, null ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(java.io.Reader r, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( r, type, options ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(javax.xml.stream.XMLStreamReader sr) throws org.apache.xmlbeans.XmlException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( sr, type, null ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(javax.xml.stream.XMLStreamReader sr, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( sr, type, options ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(org.w3c.dom.Node node) throws org.apache.xmlbeans.XmlException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( node, type, null ); }
        
        public static x2.orgJpdl3.jbpm.MailDocument parse(org.w3c.dom.Node node, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( node, type, options ); }
        
        /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */
        public static x2.orgJpdl3.jbpm.MailDocument parse(org.apache.xmlbeans.xml.stream.XMLInputStream xis) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xis, type, null ); }
        
        /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */
        public static x2.orgJpdl3.jbpm.MailDocument parse(org.apache.xmlbeans.xml.stream.XMLInputStream xis, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return (x2.orgJpdl3.jbpm.MailDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xis, type, options ); }
        
        /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */
        public static org.apache.xmlbeans.xml.stream.XMLInputStream newValidatingXMLInputStream(org.apache.xmlbeans.xml.stream.XMLInputStream xis) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newValidatingXMLInputStream( xis, type, null ); }
        
        /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */
        public static org.apache.xmlbeans.xml.stream.XMLInputStream newValidatingXMLInputStream(org.apache.xmlbeans.xml.stream.XMLInputStream xis, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newValidatingXMLInputStream( xis, type, options ); }
        
        private Factory() { } // No instance of this class allowed
    }
}
